The Meeting Rooms Widget
The Meeting Rooms widget integrates Connections Communities and Sametime Meetings. Owners of a Community can create a meeting room, and members of the Community can view a list of available meeting rooms and join those meetings. When creating a meeting room, the widget provides fields to configure the room.
How does the Meeting Rooms Widget work?
The widget sends HTTP requests to the Sametime Meetings server. The HTTP requests are handled by the Meeting Server's ReST API. The API allows the widget to retrieve and create meeting rooms from within the Community page.
Supported Versions
Name |
Version |
IBM WebSphere Application Server |
7.7.0+ |
IBM Connections |
4.x |
IBM Sametime Meeting Server |
8.5.2 IFR1+ |
Enabling Single Sign-On
The Sametime Meetings API requires authentication before releasing data, therefore, single sign-on must be enabled between Connections and the Sametime Meetings Server. Complete these procedures to enable single sign-on:
- Export LTPA tokens from the Sametime Meetings server.
- Import those LTPA tokens into the Connections server.
- Enable single sign-on.
- Configure LDAP on WebSphere.
For detailed instructions on enabling single sign-on, see this topic: Configuring single sign-on with an LTPA token on IBM WebSphere and IBM Domino platforms.
Widget Installation
Prerequisites
Install these servers prior to completing this procedure to configure the widget:
- IBM Connections server with Communities, News, Common, WidgetContainer and Profiles applications
- IBM Sametime Sametime Meeting Server
Unpacking the widget files
The widget files are available from the IBM Collaboration Solutions Catalog on Greenhouse. Download the widget files to the computer hosting the Connections server.
Extract the widget files.
After the widget files are downloaded and extracted, complete these steps:
- Place jar files, that is, the files with extension .jar, in this directory:
/optionalLibraries/Meeting Rooms SPI.
For example: C:/IBM/IBMConnections/WebSphere/AppServer/optionalLibraries/Meeting Rooms SPI.
- Place all other files in this directory:
/profiles/installedApps//Communities.ear/comm.web.war/MeetingRoomsWidget. |
Downloading the Sametime Meetings Remote Client SDK
The synchronization of Community owners to the meeting rooms owner list is handled by the MeetingRoomsMembershipSynchroniser.jar. This jar has dependencies on libraries contained within the Sametime Meetings Remote Client SDK. To include the required libraries, complete these steps:
- Download the Sametime Meetings Remote Client SDK from the IBM developerWorks website
- Extract the contents of the zip to the machine hosting the Connections server
- Copy the following jars from the 'lib' directory into /optionalLibraries/Meeting Rooms SPI:
commons-logging-1.1.jar
httpclient-4.0.1.jar
httpcore-nio-4.0.1.jar
httpmime-4.0.1.jar
meeting.client.core.jar
Adding the widget to the widget definition file
Instructions for modifying the widgets-config.xml file are located here: IBM - Using the widgets-config.xml file for Communities.
You must insert a definition for the Meeting Rooms widget into the widgets-config.xml file. Use this definition, but note that you need to customize some values. See the table at the end of this definition for a list of values that require customizing.
<widgetDef defId="Meeting Rooms" primaryWidget="false" modes="view fullpage" url="/communities/MeetingRoomsWidget/MeetingRoomsWidget1.xml"
uniqueInstance="true" iconUrl="/communities/MeetingRoomsWidget/meetings-icon.jpg">
<itemSet>
<item name="sametimeMeetingsServerUrl" value="https://meetings.ibm.com:9444" />
<item name="widgetFilePath" value="/communities/MeetingRoomsWidget/" />
</itemSet>
</widgetDef>
Customize these values to match your configuration:
Value |
Description |
url |
The MeetingRoomsWidget1.xml file, including the path. |
iconUrl |
The meetings-icon.jpg file, including the path. |
sametimeMeetingsServerUrl |
The address and port number of your Sametime Meeting server. |
widgetFilePath |
The path to the folder where the widget files are stored. |
Configuring the Ajax proxy
The Ajax proxy allows requests to be made across domains. Since the Sametime Meetings application resides on its own server, not on the Connections server, requests should be made through the Ajax proxy.
The WebSphere Application Server contains a modifiable proxy configuration file, proxy-config.tpl.
To modify the file, see this procedure: Configuring the Ajax proxy.
The proxy must allow the actions, cookies, and headers as shown.
Note: You must modify the url value according to your own configuration.
<proxy:mapping contextpath="/http/*"/>
<proxy:mapping contextpath="/https/*"/>
<proxy:policy url="<protocol>://<sametime_meetings_domain>:<port_number>/*" acf="none">
<proxy:actions>
<proxy:method>GET</proxy:method>
<proxy:method>HEAD</proxy:method>
<proxy:method>POST</proxy:method>
<proxy:method>PUT</proxy:method>
<proxy:method>DELETE</proxy:method>
</proxy:actions>
<proxy:cookies>
<proxy:cookie>LtpaToken</proxy:cookie>
<proxy:cookie>LtpaToken2</proxy:cookie>
<proxy:cookie>JSESSIONID</proxy:cookie>
</proxy:cookies>
<proxy:headers>
<proxy:header>X-ST-CSRF-Token</proxy:header>
<proxy:header>User-Agent</proxy:header>
<proxy:header>Accept.*</proxy:header>
<proxy:header>Content.*</proxy:header>
<proxy:header>Authorization.*</proxy:header>
<proxy:header>If-.*</proxy:header>
<proxy:header>Pragma</proxy:header>
<proxy:header>Cache-Control</proxy:header>
<proxy:header>X-Update-Nonce</proxy:header>
<proxy:header>WWW-Authenticate.*</proxy:header>
<proxy:header>Access.*</proxy:header>
</proxy:headers>
</proxy:policy>
The url value should be formatted as:
protocol://
sametime_meetings_domain:
port_number/*
For example:
http://myMeetingsServer.ibm.com:9080/*
or
https://myMeetingsServer.ibm.com:9443/*
Note: if you have set up the widget in Connections, and you receive a error message with the 403 status code, it generally means that the Ajax Proxy settings are incorrect. To troubleshoot, refer to the error code reference at the bottom of this document.
Configuring Secure Socket Layer (SSL) communication for a network deployment environment
If you wish to use SSL communication, the Sametime Meetings server must retrieve all Connections certificates. In WebSphere for the Sametime Meetings server, follow the steps in this link:
Configuring Secure Socket Layer (SSL) communication for a network deployment environment.
Installing the Membership Synchronizer in WebSphere
Community owners are mapped to be managers of meeting rooms. This mapping of Community owners to meeting room managers is done by the MeetingRoomsMembershipSynchroniser.jar file. When an owner is added to, or removed from a Community, the membership synchronizer updates must be installed into WebSphere.
Creating a shared library
For instructions on how to create a shared library, see this article: Creating shared libraries.
In the Classpath field, enter the name of the jar files, including the path. The variable ${WAS_INSTALL_ROOT} is configured by default, and is equivalent to C:\IBM\WebSphere\AppServer. Each jar file must be on a new line:
${WAS_INSTALL_ROOT}/optionalLibraries/Meeting Rooms SPI/MeetingRoomsMembershipSynchroniser.jar
${WAS_INSTALL_ROOT}/optionalLibraries/Meeting Rooms SPI/lib/commons-logging-1.1.jar
${WAS_INSTALL_ROOT}/optionalLibraries/Meeting Rooms SPI/lib/httpclient-4.0.1.jar
${WAS_INSTALL_ROOT}/optionalLibraries/Meeting Rooms SPI/lib/httpcore-nio-4.0.1.jar
${WAS_INSTALL_ROOT}/optionalLibraries/Meeting Rooms SPI/lib/httpmime-4.0.1.jar
${WAS_INSTALL_ROOT}/optionalLibraries/Meeting Rooms SPI/lib/meeting.client.core.jar
Deploying the event handler
Instructions to deploy the event handler on the Connections server are described in this article: Deploying an event handler.
Adding the shared library to the News module:
- Log in to the Integrated Solutions Console as the WebSphere administrator.
- In the navigation tree, click Applications->Application Types->WebSphere enterprise applications->News->References->Shared library references.
- Select News.
- Click Reference shared libraries.
- Select the shared library you created.
- Click the right arrow to add the shared library to the Selected field.
- Click OK.
- Click OK again.
- At the top of the page, click Save directly to the master configuration.
Registering the event handler with Connections:
- Open the events-config.xml file, usually located at: /profiles/AppSrv01/config/cells/
/LotusConnections-config. |
- Find the tag .
- Add this code within the tag.
-
<postHandler enabled="true" invoke="ASYNC" name="MeetingRoomsMembershipSynchroniser"
class="meetings.MeetingRoomsMembershipSynchroniser">
<subscriptions>
<subscription source="COMMUNITIES" type="MEMBERSHIP" eventName="*"/>
</subscriptions>
</postHandler>
Supplying credentials
The membership synchronizer makes HTTP requests to the Sametime Meetings server on behalf of a user, therefore, it must use credentials. Use the Java Authentication and Authorization Service for these credentials.
Complete these steps to create a new login resource.
- Log in to the Integrated Solutions Console as the WebSphere administrator on the Connections server.
- In the navigation tree, click Security->Global security->Java Authentication and Authorization Service->J2C authentication data.
- For compatibility with earlier releases, deselect Prefix new alias names with the node name of the cell. If you are deselecting this, save the changes, synchronize the appropriate node, and restart the application server, before continuing to step 4.
- Click New.
- In the alias field, enter meetingsAdmin. This setting is case-sensitive and must be this exact value.
- Enter the username and password for the master user of Sametime Meetings.
- Click OK, resynchronize the appropriate node, and restart the application server.
Now that the master credentials have been configured, you supply the membership synchronizer with property values unique to your setup of Connections and Sametime Meetings.
Use WebSphere variables to include the properties in the membership synchronizer.
- Log in to the WebSphere Integrated Solutions Console as the WebSphere administrator.
- Click Environment->WebSphere variables.
- Select the appropriate scope from the drop-down list. View the page's help for more information on scope.
- Click New.
- Set the Name to MEETINGS_URL.
- Set the Value to the link to your Sametime Meetings server, including protocol, domain, and port number.
- Save the changes, resynchronize the appropriate node, and restart the application server.
Note: In WebSphere, the node must be fully resynchronized and the WebSphere application server must be restarted for all changes to take effect.
Using the Meeting Rooms Widget
Creating a new meeting room
As a Community owner, you can create a meeting room.
- Click New Meeting Room...
- Enter the room name.
- Configure the room to your preference.
- Click Save.
Entering a meeting room
Any member of the Community can access meeting rooms by clicking the meeting room name, or in the full page mode, by clicking the Enter Meeting Room link.
Sorting meeting rooms
Sort the list of meeting rooms in full page mode according to heading. Click the Meeting Room Name, Owner, Participants, or Last Accessed header to sort by that field.
Copying a link to a meeting room
To quickly copy the link to a meeting room, click Copy link, and then use the keyboard shortcut CTRL+C to copy the link to your computer. Click the red X to close the copy link section.
Managing meeting rooms
As a Community owner, you see the Manage Meeting Rooms button in the full page mode of the widget. Click Manage Meeting Rooms to be directed to the Meeting Room Center, where you can modify and delete chat rooms.
Installation Troubleshooting
Internet Explorer in protected mode
Using Internet Explorer in protected mode causes single sign-on to break between Connections and the Sametime Meetings Server. Members are prompted to log in when attempting to view a meeting room, and owners are not able to create a new meeting room. To resolve the problem, turn off protected mode in Internet Explorer.
Debugging the membership synchronizer
When the membership synchronizer fails, an error message is logged to the log files. View these error messages at: /profiles/AppSrv01/logs//SystemOut.log.
Limitations and Known Issues
No group support
The widget does not support group synchronization between Communities and meeting rooms.
No room owner changes
When a room is created, the creator of the room is assigned as the owner of the room. By default, a room owner cannot be changed. In Connections, if a Community owner leaves the Community, the meeting room continues to exist, and the owner can not be changed. The workaround is to ask an administrator to delete the room from the Meeting Room Center.
Error Code Reference
001
Failed to create meeting room.
Possible causes:
1. Your sametimeMeetingsServerUrl value is incorrect in widgets-config.xml.
2. Your X-ST-CSRF-Token is invalid. You may not be in the Meetings LDAP.
3. Your Sametime Meetings server is not live.
002
Failed to retrieve meeting rooms.
Possible causes:
1. Your sametimeMeetingsServerUrl value is incorrect in widgets-config.xml.
2. Your X-ST-CSRF-Token is invalid. You may not be in the Meetings LDAP.
3. Your Sametime Meetings server is not live.
003
Failed to get Community members using the Communities API.
Possible cause:
Communities API is not responding as expected.
004
You are no longer authorized to create a meeting room.
Possible causes:
- You were previously an owner of the Community, and now you are a member.
403
Failed to send a request through the Ajax proxy.
Possible causes:
- The URL value in the proxy policy is incorrect.
- The incorrect proxy policy is being used.
Troubleshooting:
To test if the Ajax proxy is the cause of the 403 error code, move the policy in the file, so that it is the first policy. Then change the URL value to "*" - this means that it accepts all URLs for cross-domain requests. In WebSphere, the node must be fully re-synchronised and the application server must be restarted, for changes to take effect.
Solution:
Use the Meetings server URL with an asterisk at the end. Example: url="http://myMeetingsServer.ibm.com:9080/*".
412
Failure to create a meeting room.
Possible cause:
Your X-ST-CSRF-Token is invalid. Connections has set the HTTPONLY flag.
Workaround for error 412:
Caution: Only implement this workaround if you understand its effects and consequences.
- Log in to the Integrated Solutions Console as the WebSphere administrator. (The URL ends with: "/ibm/console").
- Click Servers->ServerTypes->WebSphere application servers->[your server]->Web container settings->Web container->Session management.
- Click Enable cookies hyperlink.
- Ensure that the Set session cookies to HTTPOnly to help prevent cross-site scripting attacks option is NOT selected.
- Click Apply.
- Resynchronize the nodes, and restart the WebSphere application server.
Other error codes
You may see other error codes which are standard HTTP status codes. Open the browser's developer tools to investigate these issues.